package com.xingchi.tornado.mybatisplus.service;

import com.xingchi.tornado.model.BaseDTO;
import com.xingchi.tornado.model.PaginationQuery;

import java.util.List;

/**
 * 基于MybatisPlus的service接口
 * 提供基础的数据操作方法
 *
 * @author xingchi
 * @date 2024/3/2 19:21
 */
public interface BasePlusService<T extends BaseDTO, Q extends PaginationQuery> extends BaseQueryService<T, Q> {
    
    /**
     * 批量保存数据
     *
     * @param records 待保存的数据列表
     */
    void saveBatch(List<T> records);
    
    /**
     * 批量保存数据，支持自定义批次大小
     *
     * @param records 待保存的数据列表
     * @param batchSize 每批处理的记录数
     */
    void saveBatch(List<T> records, int batchSize);
    
    /**
     * 批量更新数据
     *
     * @param records 待更新的数据列表
     * @return 是否更新成功
     */
    boolean updateBatchById(List<T> records);
    
    /**
     * 批量更新数据，支持自定义批次大小
     *
     * @param records 待更新的数据列表
     * @param batchSize 每批处理的记录数
     * @return 是否更新成功
     */
    boolean updateBatchById(List<T> records, int batchSize);
}
